https://martin.kleppmann.com/2015/11/05/database-inside-out-at-oredev.html